{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Geometry types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pythreejs import *\n",
    "from IPython.display import display\n",
    "from math import pi"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Reduce repo churn for examples with embedded state:\n",
    "from pythreejs._example_helper import use_example_model_ids\n",
    "use_example_model_ids()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_002",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=BoxGeometry(depth=15.0, depthSegments=15, height=10.0, heightSegments=10, width=5.0, widthSegmen…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "BoxGeometry(\n",
    "    width=5, \n",
    "    height=10, \n",
    "    depth=15,\n",
    "    widthSegments=5, \n",
    "    heightSegments=10,\n",
    "    depthSegments=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_006",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=BoxBufferGeometry(depth=15.0, depthSegments=15, height=10.0, heightSegments=10, width=5.0, width…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "BoxBufferGeometry(\n",
    "    width=5, \n",
    "    height=10, \n",
    "    depth=15,\n",
    "    widthSegments=5, \n",
    "    heightSegments=10,\n",
    "    depthSegments=15)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_010",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=CircleGeometry(radius=10.0, segments=10, thetaLength=5.0, thetaStart=0.25), shadowMap=WebGLShado…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CircleGeometry(\n",
    "    radius=10,\n",
    "    segments=10,\n",
    "    thetaStart=0.25,\n",
    "    thetaLength=5.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_014",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=CircleBufferGeometry(radius=10.0, segments=10, thetaLength=5.0, thetaStart=0.25), shadowMap=WebG…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CircleBufferGeometry(\n",
    "    radius=10,\n",
    "    segments=10,\n",
    "    thetaStart=0.25,\n",
    "    thetaLength=5.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_018",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=CylinderGeometry(height=15.0, heightSegments=10, radialSegments=6, radiusBottom=10.0, radiusTop=…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CylinderGeometry(\n",
    "    radiusTop=5, \n",
    "    radiusBottom=10, \n",
    "    height=15, \n",
    "    radialSegments=6, \n",
    "    heightSegments=10, \n",
    "    openEnded=False, \n",
    "    thetaStart=0, \n",
    "    thetaLength=2.0*pi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_022",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=CylinderBufferGeometry(height=15.0, heightSegments=10, radialSegments=6, radiusBottom=10.0, radi…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CylinderBufferGeometry(\n",
    "    radiusTop=5, \n",
    "    radiusBottom=10, \n",
    "    height=15, \n",
    "    radialSegments=6, \n",
    "    heightSegments=10, \n",
    "    openEnded=False, \n",
    "    thetaStart=0, \n",
    "    thetaLength=2.0*pi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_026",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=DodecahedronGeometry(radius=10.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dodeca_geometry = DodecahedronGeometry(radius=10, detail=0, _flat=True)\n",
    "dodeca_geometry"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_032",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=LineSegments(geometry=EdgesGeometry(geometry=DodecahedronGeometry(radius=10.0)), material=LineBa…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "LineSegments(\n",
    "    EdgesGeometry(dodeca_geometry),\n",
    "    LineBasicMaterial(parameters=dict(color='ffffff'))\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO:\n",
    "# ExtrudeGeometry(...)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_036",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=IcosahedronGeometry(radius=10.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "IcosahedronGeometry(radius=10, _flat=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_040",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=LatheBufferGeometry(points=[[0, -10, 0], [10, -5, 0], [5, 5, 0], [0, 10, 0]], segments=16), shad…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "LatheBufferGeometry(\n",
    "    points=[\n",
    "        [ 0, -10, 0 ],\n",
    "        [ 10, -5, 0 ],\n",
    "        [ 5, 5, 0 ],\n",
    "        [ 0, 10, 0 ]\n",
    "    ],\n",
    "    segments=16,\n",
    "    phiStart=0.0,\n",
    "    phiLength=2.0*pi, _flat=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_044",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=OctahedronGeometry(radius=10.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "OctahedronGeometry(radius=10, detail=0, _flat=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_048",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=ParametricGeometry(func='function(u,v,out) { \\n        var x = 5 * (0.5 - u);\\n        var y = 5…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "ParametricGeometry(\n",
    "    func=\"\"\"function(u,v,out) { \n",
    "        var x = 5 * (0.5 - u);\n",
    "        var y = 5 * (0.5 - v);\n",
    "        out.set(10 * x, 10 * y, x*x - y*y); \n",
    "    }\"\"\",\n",
    "    slices=5,\n",
    "    stacks=10, _flat=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_052",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=PlaneGeometry(height=15.0, heightSegments=10, width=10.0, widthSegments=5), shadowMap=WebGLShado…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "PlaneGeometry(\n",
    "    width=10,\n",
    "    height=15,\n",
    "    widthSegments=5,\n",
    "    heightSegments=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_056",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=PlaneBufferGeometry(height=15.0, heightSegments=10, width=10.0, widthSegments=5), shadowMap=WebG…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "PlaneBufferGeometry(\n",
    "    width=10,\n",
    "    height=15,\n",
    "    widthSegments=5,\n",
    "    heightSegments=10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO\n",
    "# PolyhedronGeometry(...)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_060",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=RingGeometry(innerRadius=10.0, outerRadius=25.0, phiSegments=12), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TODO: issues when radius is 0...\n",
    "RingGeometry(\n",
    "    innerRadius=10,\n",
    "    outerRadius=25,\n",
    "    thetaSegments=8,\n",
    "    phiSegments=12,\n",
    "    thetaStart=0,\n",
    "    thetaLength=6.283185307179586)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_064",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=RingBufferGeometry(innerRadius=10.0, outerRadius=25.0, phiSegments=12), shadowMap=WebGLShadowMap…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TODO: issues when radius is 0...\n",
    "RingBufferGeometry(\n",
    "    innerRadius=10,\n",
    "    outerRadius=25,\n",
    "    thetaSegments=8,\n",
    "    phiSegments=12,\n",
    "    thetaStart=0,\n",
    "    thetaLength=6.283185307179586)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO\n",
    "# ShapeGeometry(...)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_068",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=SphereGeometry(phiLength=4.71238898038469, radius=20.0, thetaLength=2.0943951023931953), shadowM…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "SphereGeometry(\n",
    "    radius=20,\n",
    "    widthSegments=8,\n",
    "    heightSegments=6,\n",
    "    phiStart=0,\n",
    "    phiLength=1.5*pi,\n",
    "    thetaStart=0,\n",
    "    thetaLength=2.0*pi/3.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_072",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=SphereBufferGeometry(phiLength=4.71238898038469, radius=20.0, thetaLength=2.0943951023931953), s…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "SphereBufferGeometry(\n",
    "    radius=20,\n",
    "    widthSegments=8,\n",
    "    heightSegments=6,\n",
    "    phiStart=0,\n",
    "    phiLength=1.5*pi,\n",
    "    thetaStart=0,\n",
    "    thetaLength=2.0*pi/3.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_076",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=TetrahedronGeometry(detail=1, radius=10.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TetrahedronGeometry(radius=10, detail=1, _flat=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO: font loading\n",
    "# TextGeometry(...)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_080",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=TorusGeometry(arc=4.71238898038469, radialSegments=20, radius=20.0, tube=5.0), shadowMap=WebGLSh…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TorusGeometry(\n",
    "    radius=20,\n",
    "    tube=5,\n",
    "    radialSegments=20,\n",
    "    tubularSegments=6,\n",
    "    arc=1.5*pi)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_084",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=TorusBufferGeometry(radius=100.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TorusBufferGeometry(radius=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_088",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=TorusKnotGeometry(radius=20.0, tube=5.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TorusKnotGeometry(\n",
    "    radius=20,\n",
    "    tube=5,\n",
    "    tubularSegments=64,\n",
    "    radialSegments=8,\n",
    "    p=2,\n",
    "    q=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_092",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=TorusKnotBufferGeometry(radius=20.0, tube=5.0), shadowMap=WebGLShadowMap())"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "TorusKnotBufferGeometry(\n",
    "    radius=20,\n",
    "    tube=5,\n",
    "    tubularSegments=64,\n",
    "    radialSegments=8,\n",
    "    p=2,\n",
    "    q=3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO: handling THREE.Curve\n",
    "TubeGeometry(\n",
    "    path=None,\n",
    "    segments=64,\n",
    "    radius=1,\n",
    "    radialSegments=8,\n",
    "    close=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "pythree_example_model_097",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Preview(child=WireframeGeometry(geometry=TorusBufferGeometry(radialSegments=6, radius=20.0, tube=5.0, tubularS…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "WireframeGeometry(geometry=TorusBufferGeometry(\n",
    "    radius=20,\n",
    "    tube=5,\n",
    "    radialSegments=6,\n",
    "    tubularSegments=20,\n",
    "    arc=2.0*pi\n",
    "))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "state": {
     "pythree_example_model_001": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "BoxGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "depth": 15,
       "depthSegments": 15,
       "height": 10,
       "heightSegments": 10,
       "width": 5,
       "widthSegments": 5
      }
     },
     "pythree_example_model_002": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_001",
       "layout": "IPY_MODEL_pythree_example_model_003",
       "shadowMap": "IPY_MODEL_pythree_example_model_004"
      }
     },
     "pythree_example_model_003": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_004": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_005": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "BoxBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "depth": 15,
       "depthSegments": 15,
       "height": 10,
       "heightSegments": 10,
       "width": 5,
       "widthSegments": 5
      }
     },
     "pythree_example_model_006": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_005",
       "layout": "IPY_MODEL_pythree_example_model_007",
       "shadowMap": "IPY_MODEL_pythree_example_model_008"
      }
     },
     "pythree_example_model_007": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_008": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_009": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "CircleGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 10,
       "segments": 10,
       "thetaLength": 5,
       "thetaStart": 0.25
      }
     },
     "pythree_example_model_010": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_009",
       "layout": "IPY_MODEL_pythree_example_model_011",
       "shadowMap": "IPY_MODEL_pythree_example_model_012"
      }
     },
     "pythree_example_model_011": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_012": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_013": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "CircleBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 10,
       "segments": 10,
       "thetaLength": 5,
       "thetaStart": 0.25
      }
     },
     "pythree_example_model_014": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_013",
       "layout": "IPY_MODEL_pythree_example_model_015",
       "shadowMap": "IPY_MODEL_pythree_example_model_016"
      }
     },
     "pythree_example_model_015": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_016": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_017": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "CylinderGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "height": 15,
       "heightSegments": 10,
       "radialSegments": 6,
       "radiusBottom": 10,
       "radiusTop": 5
      }
     },
     "pythree_example_model_018": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_017",
       "layout": "IPY_MODEL_pythree_example_model_019",
       "shadowMap": "IPY_MODEL_pythree_example_model_020"
      }
     },
     "pythree_example_model_019": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_020": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_021": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "CylinderBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "height": 15,
       "heightSegments": 10,
       "radialSegments": 6,
       "radiusBottom": 10,
       "radiusTop": 5
      }
     },
     "pythree_example_model_022": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_021",
       "layout": "IPY_MODEL_pythree_example_model_023",
       "shadowMap": "IPY_MODEL_pythree_example_model_024"
      }
     },
     "pythree_example_model_023": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_024": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_025": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "DodecahedronGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 10
      }
     },
     "pythree_example_model_026": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_025",
       "layout": "IPY_MODEL_pythree_example_model_027",
       "shadowMap": "IPY_MODEL_pythree_example_model_028"
      }
     },
     "pythree_example_model_027": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_028": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_029": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "EdgesGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "geometry": "IPY_MODEL_pythree_example_model_025"
      }
     },
     "pythree_example_model_030": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "LineBasicMaterialModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_031": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "LineSegmentsModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "geometry": "IPY_MODEL_pythree_example_model_029",
       "material": "IPY_MODEL_pythree_example_model_030"
      }
     },
     "pythree_example_model_032": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_031",
       "layout": "IPY_MODEL_pythree_example_model_033",
       "shadowMap": "IPY_MODEL_pythree_example_model_034"
      }
     },
     "pythree_example_model_033": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_034": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_035": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "IcosahedronGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 10
      }
     },
     "pythree_example_model_036": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_035",
       "layout": "IPY_MODEL_pythree_example_model_037",
       "shadowMap": "IPY_MODEL_pythree_example_model_038"
      }
     },
     "pythree_example_model_037": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_038": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_039": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "LatheBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "points": [
        [
         0,
         -10,
         0
        ],
        [
         10,
         -5,
         0
        ],
        [
         5,
         5,
         0
        ],
        [
         0,
         10,
         0
        ]
       ],
       "segments": 16
      }
     },
     "pythree_example_model_040": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_039",
       "layout": "IPY_MODEL_pythree_example_model_041",
       "shadowMap": "IPY_MODEL_pythree_example_model_042"
      }
     },
     "pythree_example_model_041": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_042": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_043": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "OctahedronGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 10
      }
     },
     "pythree_example_model_044": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_043",
       "layout": "IPY_MODEL_pythree_example_model_045",
       "shadowMap": "IPY_MODEL_pythree_example_model_046"
      }
     },
     "pythree_example_model_045": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_046": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_047": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "ParametricGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "func": "function(u,v,out) { \n        var x = 5 * (0.5 - u);\n        var y = 5 * (0.5 - v);\n        out.set(10 * x, 10 * y, x*x - y*y); \n    }",
       "slices": 5,
       "stacks": 10
      }
     },
     "pythree_example_model_048": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_047",
       "layout": "IPY_MODEL_pythree_example_model_049",
       "shadowMap": "IPY_MODEL_pythree_example_model_050"
      }
     },
     "pythree_example_model_049": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_050": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_051": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PlaneGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "height": 15,
       "heightSegments": 10,
       "width": 10,
       "widthSegments": 5
      }
     },
     "pythree_example_model_052": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_051",
       "layout": "IPY_MODEL_pythree_example_model_053",
       "shadowMap": "IPY_MODEL_pythree_example_model_054"
      }
     },
     "pythree_example_model_053": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_054": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_055": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PlaneBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "height": 15,
       "heightSegments": 10,
       "width": 10,
       "widthSegments": 5
      }
     },
     "pythree_example_model_056": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_055",
       "layout": "IPY_MODEL_pythree_example_model_057",
       "shadowMap": "IPY_MODEL_pythree_example_model_058"
      }
     },
     "pythree_example_model_057": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_058": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_059": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "RingGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "innerRadius": 10,
       "outerRadius": 25,
       "phiSegments": 12
      }
     },
     "pythree_example_model_060": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_059",
       "layout": "IPY_MODEL_pythree_example_model_061",
       "shadowMap": "IPY_MODEL_pythree_example_model_062"
      }
     },
     "pythree_example_model_061": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_062": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_063": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "RingBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "innerRadius": 10,
       "outerRadius": 25,
       "phiSegments": 12
      }
     },
     "pythree_example_model_064": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_063",
       "layout": "IPY_MODEL_pythree_example_model_065",
       "shadowMap": "IPY_MODEL_pythree_example_model_066"
      }
     },
     "pythree_example_model_065": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_066": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_067": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "SphereGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "phiLength": 4.71238898038469,
       "radius": 20,
       "thetaLength": 2.0943951023931953
      }
     },
     "pythree_example_model_068": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_067",
       "layout": "IPY_MODEL_pythree_example_model_069",
       "shadowMap": "IPY_MODEL_pythree_example_model_070"
      }
     },
     "pythree_example_model_069": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_070": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_071": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "SphereBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "phiLength": 4.71238898038469,
       "radius": 20,
       "thetaLength": 2.0943951023931953
      }
     },
     "pythree_example_model_072": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_071",
       "layout": "IPY_MODEL_pythree_example_model_073",
       "shadowMap": "IPY_MODEL_pythree_example_model_074"
      }
     },
     "pythree_example_model_073": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_074": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_075": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TetrahedronGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "detail": 1,
       "radius": 10
      }
     },
     "pythree_example_model_076": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_075",
       "layout": "IPY_MODEL_pythree_example_model_077",
       "shadowMap": "IPY_MODEL_pythree_example_model_078"
      }
     },
     "pythree_example_model_077": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_078": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_079": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TorusGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "arc": 4.71238898038469,
       "radialSegments": 20,
       "radius": 20,
       "tube": 5
      }
     },
     "pythree_example_model_080": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_079",
       "layout": "IPY_MODEL_pythree_example_model_081",
       "shadowMap": "IPY_MODEL_pythree_example_model_082"
      }
     },
     "pythree_example_model_081": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_082": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_083": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TorusBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 100
      }
     },
     "pythree_example_model_084": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_083",
       "layout": "IPY_MODEL_pythree_example_model_085",
       "shadowMap": "IPY_MODEL_pythree_example_model_086"
      }
     },
     "pythree_example_model_085": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_086": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_087": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TorusKnotGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 20,
       "tube": 5
      }
     },
     "pythree_example_model_088": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_087",
       "layout": "IPY_MODEL_pythree_example_model_089",
       "shadowMap": "IPY_MODEL_pythree_example_model_090"
      }
     },
     "pythree_example_model_089": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_090": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_091": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TorusKnotBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radius": 20,
       "tube": 5
      }
     },
     "pythree_example_model_092": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_091",
       "layout": "IPY_MODEL_pythree_example_model_093",
       "shadowMap": "IPY_MODEL_pythree_example_model_094"
      }
     },
     "pythree_example_model_093": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_094": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     },
     "pythree_example_model_095": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "TorusBufferGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "radialSegments": 6,
       "radius": 20,
       "tube": 5,
       "tubularSegments": 20
      }
     },
     "pythree_example_model_096": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WireframeGeometryModel",
      "state": {
       "_view_module": null,
       "_view_module_version": "",
       "geometry": "IPY_MODEL_pythree_example_model_095"
      }
     },
     "pythree_example_model_097": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "PreviewModel",
      "state": {
       "_alpha": false,
       "child": "IPY_MODEL_pythree_example_model_096",
       "layout": "IPY_MODEL_pythree_example_model_098",
       "shadowMap": "IPY_MODEL_pythree_example_model_099"
      }
     },
     "pythree_example_model_098": {
      "model_module": "@jupyter-widgets/base",
      "model_module_version": "1.1.0",
      "model_name": "LayoutModel",
      "state": {}
     },
     "pythree_example_model_099": {
      "model_module": "jupyter-threejs",
      "model_module_version": "^2.0.3",
      "model_name": "WebGLShadowMapModel",
      "state": {
       "_view_module": null,
       "_view_module_version": ""
      }
     }
    },
    "version_major": 2,
    "version_minor": 0
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
